Jinja2 if else
templates\template.html
{% if message == "hello!" %} <h1>Server says hello!</h1> {% else %} <h1>Server said something else.</h1> {% endif %}
server.py
from flask import * app = Flask("branching logic with jinja") @app.route("/") def main(): return render_template("template.html", message = "hello!") app.run(debug=True)
A safer way is to check in the template if a variable is defined first, before trying to print or use its value:
templates\template.html
{% if message is defined %} {% if message == "hello!" %} <h1>Server says hello!</h1> {% else %} <h1>Server said something else.</h1> {% endif %} {% else %} <h1>Server said nothing.</h1> {% endif %}